export default {
  functional: true,
  render(h, { parent, data }) {
    // data里面可以增加一些标识
    // 内部current变成了响应式的
    // 真正用的是 $route，this.$route = current; current = xxx;
    //
    // return <h1>view</h1>;
    // current, $route
    let route = parent.$route; // 获取current对象
    // 依次将matched的结果赋予给每个router-view
    // 父* -->父* -->父* --> 子
    let depth = 0;

    while (parent) {
      // 首先是组件
      if (parent.$vnode && parent.$vnode.data.routerView) {
        depth++;
      }
      parent = parent.$parent; // 不停的找父亲
    }
    // 两个router-view时  /about  /about/a时
    let record = route.matched[depth]; // 默认肯定先渲染第一层

    if (!record) {
      return h(); // 空节点
    }
    //
    data.routerView = true;
    return h(record.component, data); // 渲染匹配到的组件， 这里一直都是渲染的是第一个
  },
};
